package com.ezops.dao.facade;

import java.io.Serializable;
import java.util.List;

import com.ezops.dao.generics.dao.hibernate.GenericDAO;
import com.ezops.dao.generics.search.ISearch;
import com.ezops.models.DomainEntity;

/****
 * Interface Definition for a generic Data Transfer Facade
 * 
 * @author HindsC
 * 
 * @param <T>
 */
public interface DataTransferFacade<T extends DomainEntity> {

	public void save(T domainEntity);

	public void delete(T domainentity);

	public T find(T domainEntity);

	public List<T> findAll();

	public List<T> search(ISearch search);

	public T searchUnique(ISearch search);

	public GenericDAO<T, Serializable> getDataAccessObject();

}
